/*
 * CacheDirectorio.h
 *
 *  Created on: 30/11/2011
 *      Author: utn_so
 */

#ifndef CACHEDIRECTORIO_H_
#define CACHEDIRECTORIO_H_

#include <stdio.h>
#include <string.h>
#include <pthread.h>
#include <stdlib.h>
#include <stdint.h>

#include "fat32.h"

typedef struct {

	ListaDirectorios* listaDirectorios;
	char* path;

} directorio;

/****************tamaño de la cache de directorio**************************/
#define TAM_CACHE_DIR 20

//*****************variable global cache de directorios
directorio cacheDirectorio[TAM_CACHE_DIR];

/*******************Variable global contador de recursos*************/
uint32_t vectorAccesosCacheDir[TAM_CACHE_DIR];

/****************inicializa la cache de directorios*****************/
uint32_t inicializarCacheDirectorio();

/*****************Agrega un elemto a la lista de directorios**********/
uint32_t agregarCacheDirectorio(const char*, ListaDirectorios*);

/******************Buscar en Cache de Directorio************************/
//devuelve una copia.
ListaDirectorios* buscarCacheDirectorio(const char*);

/******************Borrar un Elemento de la Cache***********************/
uint32_t eliminarDatoCacheDirectorio(const char*);

/*****************Renombrar Directorio**********************************/
//(nuevo path, viejo path, listaDirectorio Modificado)
uint32_t renombrarDatoCacheDirectorio(const char*, const char*, ListaDirectorios*);

/**********************funciones auxiliares***************************/
uint32_t obtenerPosMenosUsado();
uint32_t reinicializarvectorAccesosCacheDir();

#endif /* CACHEDIRECTORIO_H_ */
